package cn.tedu.dimanage.user.service;

import cn.tedu.dimanage.pojo.dto.UserAddNewDTO;
import cn.tedu.dimanage.pojo.dto.UserLoginDTO;
import cn.tedu.dimanage.pojo.dto.UserUpdateDTO;
import cn.tedu.dimanage.pojo.vo.UserDetailVO;
import cn.tedu.dimanage.pojo.vo.UserSimpleVO;

import java.util.List;

/**
 * @Classname: IUserService
 * @Author: bromide
 * @CreateTime: 2022/6/10--11:42
 * @Version: V1.0
 * @Description:
 */
public interface IUserService {


    /**
     * 添加"用户"
     * @param userAddNewDTO 用户
     */
    void addNew(UserAddNewDTO userAddNewDTO);


    /**
     * "用户"登陆
     * @param userLoginDTO 用户登陆信息
     * @return 包含用户信息的JWT数据
     */
    String login(UserLoginDTO userLoginDTO);

    /**
     * 解析jwt来获取已登录的用户数据
     * @param jwt
     * @return
     */
    UserSimpleVO parseJwt(String jwt);

    /**
     * 管理员 根据roleId  用户管理页面查看所有用户信息
     * @param
     * @return 用户详细信息
     */
    List<UserDetailVO> listDetailsUser(Long roleId);

    /**
     * 根据用户名查看用户详细信息
     * @param username 用户名
     * @return
     */
    UserDetailVO detailsUser(String username);

    /**
     * 删除用户
     * @param id 用户id
     */
    void deleteUserById(Long id);

    /**
     * 修改用户信息
     * @param userUpdateDTO 客户端提交过来需要更改的用户信息
     */
    void updateUser(UserUpdateDTO userUpdateDTO);

}